<?php

class FormularioDeDeficiencia extends Model{
	/*******************
	 * ATRIBUTOS
	 *******************/
	private $idDeficienciaAuditiva;
	private $deficienciaAuditiva;
	private $modalidadeDeficienciaAuditiva;
	private $dificuldadeDevidoDeficienciaAuditiva;
	private $outraModalidadeDeficienciaAuditiva;
	private $observacoesDeficienciaAuditiva;
	private $idDeficienciaFala;
	private $deficienciaFala;
	private $modalidadeDeficienciaFala;
	private $outraModalidadeDeficienciaFala;
	private $observacoesDeficienciaFala;
	private $idDeficienciaFisica;
	private $deficienciaFisica;
	private $modalidadeDeficienciaFisica;
	private $outraModalidadeDeficienciaFisica;
	private $observacoesDeficienciaFisica;
	private $idDeficienciaVisual;
	private $deficienciaVisual;
	private $modalidadeDeficienciaVisual;
	private $dificuldadeDevidoDeficienciaVisual;
	private $outraModalidadeDeficienciaVisual;
	private $observacoesDeficienciaVisual;
	private $idDeficienciaIntelectual;
	private $deficienciaIntelectual;
	private $dificuldadesOcorridasDeficienciaIntelectual;
	private $outramodalidadeDeDeficienciaSelecionada;
	private $outraModalidadeDeficienciaIntelectual;
	private $observacoesDeficienciaIntelectual;
	private $camposPreenchidos;
	private $deficiencias;


	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeDeficiencia($deficiencias = null){
		$this->idDeficienciaAuditiva = 0;
		$this->deficienciaAuditiva = "";
		$this->modalidadeDeficienciaAuditiva = "";
		$this->dificuldadeDevidoDeficienciaAuditiva = "";
		$this->outraModalidadeDeficienciaAuditiva = "";
		$this->observacoesDeficienciaAuditiva = "";
		$this->idDeficienciaFala = 0;
		$this->deficienciaFala = "";
		$this->modalidadeDeficienciaFala = "";
		$this->outraModalidadeDeficienciaFala = "";
		$this->observacoesDeficienciaFala = "";
		$this->idDeficienciaFisica = 0;
		$this->deficienciaFisica = "";
		$this->modalidadeDeficienciaFisica = "";
		$this->outraModalidadeDeficienciaFisica = "";
		$this->observacoesDeficienciaFisica = "";
		$this->idDeficienciaVisual = 0;
		$this->deficienciaVisual = "";
		$this->modalidadeDeficienciaVisual = "";
		$this->dificuldadeDevidoDeficienciaVisual = "";
		$this->outraModalidadeDeficienciaVisual = "";
		$this->observacoesDeficienciaVisual = "";
		$this->idDeficienciaIntelectual = 0;
		$this->deficienciaIntelectual = "";
		$this->dificuldadesOcorridasDeficienciaIntelectual = array();
		$this->outramodalidadeDeDeficienciaSelecionada = "";
		$this->outraModalidadeDeficienciaIntelectual = "";
		$this->observacoesDeficienciaIntelectual = "";
		$this->camposPreenchidos = array();
		$this->deficiencias = array();
		if(isset($deficiencias)){
			$this->carregarDadosDoFormulario($deficiencias);
		}
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCAmpo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCAmpo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}

	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	private function carregarDadosDoFormulario($deficiencias){
		$this->deficiencias = $deficiencias;
		
		$tamanhoListaDeficiencia = count($this->deficiencias);
		
		$tipoDeDeficiencia = "";
		for($posicao = 0; $posicao < $tamanhoListaDeficiencia; $posicao++){
			$deficiencia = unserialize($this->deficiencias[$posicao]);
			$tipoDeDeficiencia = $deficiencia->getTipoDeficiencia();

			switch ($tipoDeDeficiencia){
				case "Auditiva":
					$this->idDeficienciaAuditiva = $deficiencia->getIdDeficiencia();
					$this->deficienciaAuditiva = $deficiencia->getTipoDeficiencia();
					$this->modalidadeDeficienciaAuditiva = $deficiencia->getModalidadeDaDeficiencia();
					$this->dificuldadeDevidoDeficienciaAuditiva = $deficiencia->getIntensidadeDaDeficiencia();
					$this->outraModalidadeDeficienciaAuditiva = $deficiencia->getOutraModalidadeDeficiencia();
					$this->observacoesDeficienciaAuditiva = $deficiencia->getObservacoes();
					break;

				case "Fala":
					$this->idDeficienciaFala = $deficiencia->getIdDeficiencia();
					$this->deficienciaFala = $deficiencia->getTipoDeficiencia();
					$this->modalidadeDeficienciaFala = $deficiencia->getModalidadeDaDeficiencia();
					$this->outraModalidadeDeficienciaFala = $deficiencia->getOutraModalidadeDeficiencia();
					$this->observacoesDeficienciaFala = $deficiencia->getObservacoes();
					break;

				case "Fisica":
					$this->idDeficienciaFisica = $deficiencia->getIdDeficiencia();
					$this->deficienciaFisica = $deficiencia->getTipoDeficiencia();
					$this->modalidadeDeficienciaFisica = $deficiencia->getModalidadeDaDeficiencia();
					$this->outraModalidadeDeficienciaFisica = $deficiencia->getOutraModalidadeDeficiencia();
					$this->observacoesDeficienciaFisica = $deficiencia->getObservacoes();
					break;

				case "Visual":
					$this->idDeficienciaVisual = $deficiencia->getIdDeficiencia();
					$this->deficienciaVisual = $deficiencia->getTipoDeficiencia();
					$this->modalidadeDeficienciaVisual = $deficiencia->getModalidadeDaDeficiencia();
					$this->dificuldadeDevidoDeficienciaVisual = $deficiencia->getIntensidadeDaDeficiencia();
					$this->outraModalidadeDeficienciaVisual = $deficiencia->getOutraModalidadeDeficiencia();
					$this->observacoesDeficienciaVisual = $deficiencia->getObservacoes();
					break;

				case "Intelectual":
					$this->idDeficienciaIntelectual = $deficiencia->getIdDeficiencia();
					$this->deficienciaIntelectual = $deficiencia->getTipoDeficiencia();
					$dificuldades = $deficiencia->getDificuldadesDevidoDeficiencia();
					foreach ($dificuldades as $dificuldade){
						$this->dificuldadesOcorridasDeficienciaIntelectual[] = $dificuldade->getDificuldadeDevidoDevidoDeficiencia();
					}
					//$this->dificuldadesOcorridasDeficienciaIntelectual = $deficiencia->getDificuldadesDevidoDeficiencia();
					$this->outraModalidadeDeficienciaIntelectual = $deficiencia->getOutraModalidadeDeficiencia();
					$this->outramodalidadeDeDeficienciaSelecionada = "";
					if(isset($this->outraModalidadeDeficienciaIntelectual) && $this->outraModalidadeDeficienciaIntelectual != ""){
						$this->outramodalidadeDeDeficienciaSelecionada = "IntelectualOutra";
					}
					$this->observacoesDeficienciaIntelectual = $deficiencia->getObservacoes();
					break;
					
				default:
					break;
			}

		}
		
	 	if($this->idDeficienciaAuditiva != null){
		 	$this->definirCampoPreenchido("IdDeficienciaAuditiva", $this->idDeficienciaAuditiva);
		 }

		 if($this->deficienciaAuditiva != null || $this->deficienciaAuditiva != ""){
		 	$this->definirCampoPreenchido("deficienciaAuditiva", $this->deficienciaAuditiva);
		 }
	
		 if($this->modalidadeDeficienciaAuditiva != null || $this->modalidadeDeficienciaAuditiva != ""){
		 	$this->definirCampoPreenchido("auditiva", $this->modalidadeDeficienciaAuditiva);
		 }
		 
		 if($this->dificuldadeDevidoDeficienciaAuditiva != null || $this->dificuldadeDevidoDeficienciaAuditiva != ""){
		 	$this->definirCampoPreenchido("dificuldadeAuditiva", $this->dificuldadeDevidoDeficienciaAuditiva);
		 }
	
		 if($this->outraModalidadeDeficienciaAuditiva != null || $this->outraModalidadeDeficienciaAuditiva != ""){
		 	$this->definirCampoPreenchido("auditivaOutra", $this->outraModalidadeDeficienciaAuditiva);
		 }
	
		 if($this->observacoesDeficienciaAuditiva != null || $this->observacoesDeficienciaAuditiva != ""){
		 	$this->definirCampoPreenchido("observacaoAuditiva", $this->observacoesDeficienciaAuditiva);
		 }
		 
		if($this->idDeficienciaFala != null){
		 	$this->definirCampoPreenchido("IdDeficienciaFala", $this->idDeficienciaFala);
		 }
	
		 if($this->deficienciaFala != null || $this->deficienciaFala != ""){
		 	$this->definirCampoPreenchido("deficienciaFala", $this->deficienciaFala);
		 }
	
		 if($this->modalidadeDeficienciaFala != null || $this->modalidadeDeficienciaFala != ""){
		 	$this->definirCampoPreenchido("fala", $this->modalidadeDeficienciaFala);
		 }
	
		 if($this->outraModalidadeDeficienciaFala != null || $this->outraModalidadeDeficienciaFala != ""){
		 	$this->definirCampoPreenchido("falaOutra", $this->outraModalidadeDeficienciaFala);
		 }
	
		 if($this->observacoesDeficienciaFala != null || $this->observacoesDeficienciaFala != ""){
		 	$this->definirCampoPreenchido("observacaoFala", $this->observacoesDeficienciaFala);
		 }
		 
		if($this->idDeficienciaFisica != null){
		 	$this->definirCampoPreenchido("IdDeficienciaFisica", $this->idDeficienciaFisica);
		 }
	
		 if($this->deficienciaFisica != null || $this->deficienciaFisica != ""){
		 	$this->definirCampoPreenchido("deficienciaFisica", $this->deficienciaFisica);
		 }
	
		 if($this->modalidadeDeficienciaFisica != null || $this->modalidadeDeficienciaFisica != ""){
		 	$this->definirCampoPreenchido("fisica", $this->modalidadeDeficienciaFisica);
		 }
	
		 if($this->outraModalidadeDeficienciaFisica != null || $this->outraModalidadeDeficienciaFisica != ""){
		 	$this->definirCampoPreenchido("fisicaOutra", $this->outraModalidadeDeficienciaFisica);
		 }
	
		 if($this->observacoesDeficienciaFisica != null || $this->observacoesDeficienciaFisica != ""){
		 	$this->definirCampoPreenchido("observacaoFisica", $this->observacoesDeficienciaFisica);
		 }
		 
		if($this->idDeficienciaVisual != null){
		 	$this->definirCampoPreenchido("IdDeficienciaVisual", $this->idDeficienciaVisual);
		 }
	
		 if($this->deficienciaVisual != null || $this->deficienciaVisual != ""){
		 	$this->definirCampoPreenchido("deficienciaVisual", $this->deficienciaVisual);
		 }
	
		 if($this->modalidadeDeficienciaVisual != null || $this->modalidadeDeficienciaVisual != ""){
		 	$this->definirCampoPreenchido("visual", $this->modalidadeDeficienciaVisual);
		 }
		 
		 if($this->dificuldadeDevidoDeficienciaVisual != null || $this->dificuldadeDevidoDeficienciaVisual != ""){
		 	$this->definirCampoPreenchido("dificuldadeVisual", $this->dificuldadeDevidoDeficienciaVisual);
		 }
	
		 if($this->outraModalidadeDeficienciaVisual != null || $this->outraModalidadeDeficienciaVisual != ""){
		 	$this->definirCampoPreenchido("visualOutra", $this->outraModalidadeDeficienciaVisual);
		 }
	
		 if($this->observacoesDeficienciaVisual != null || $this->observacoesDeficienciaVisual != ""){
		 	$this->definirCampoPreenchido("observacaoVisual", $this->observacoesDeficienciaVisual);
		 }
	
		if($this->idDeficienciaIntelectual != null){
		 	$this->definirCampoPreenchido("IdDeficienciaIntelectual", $this->idDeficienciaIntelectual);
		 }
		 
		 if($this->deficienciaIntelectual != null || $this->deficienciaIntelectual != ""){
		 	$this->definirCampoPreenchido("deficienciaIntelectual", $this->deficienciaIntelectual);
		 }
	
		 if($this->dificuldadesOcorridasDeficienciaIntelectual != null || $this->dificuldadesOcorridasDeficienciaIntelectual != ""){
		 	$this->definirCampoPreenchido("intelectual", $this->dificuldadesOcorridasDeficienciaIntelectual);
		 }
	
		 if($this->outramodalidadeDeDeficienciaSelecionada != null || $this->outramodalidadeDeDeficienciaSelecionada != ""){
		 	$this->definirCampoPreenchido("deficienciaIntelectualOutra", $this->outramodalidadeDeDeficienciaSelecionada);
		 }
	
		 if($this->outraModalidadeDeficienciaIntelectual != null || $this->outraModalidadeDeficienciaIntelectual != ""){
				$this->definirCampoPreenchido("intelectualOutra", $this->outraModalidadeDeficienciaIntelectual);
		 }
	
		 if($this->observacoesDeficienciaIntelectual != null || $this->observacoesDeficienciaIntelectual != ""){
		 	$this->definirCampoPreenchido("observacaoIntelectual", $this->observacoesDeficienciaIntelectual);
		 }
	}

	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$idDeficienciaAuditiva = $_POST['IdDeficienciaAuditiva'];
		$deficienciaAuditiva = "";
		if(isset($_POST['deficienciaAuditiva'])){
			$deficienciaAuditiva = $_POST['deficienciaAuditiva'];
		}
		$modalidadeDeficienciaAuditiva = $_POST['auditiva'];
		$deficienciaEGrau = explode("-", $modalidadeDeficienciaAuditiva);
		
		$modalidadeDeficienciaAuditiva = "";
		$dificuldadeDevidoDeficienciaAuditiva = "";
		
		if(isset($deficienciaEGrau)){
			if(isset($deficienciaEGrau[0]) && $deficienciaEGrau[0] != "") {
				$modalidadeDeficienciaAuditiva = $deficienciaEGrau[0];
			}
			
			if(isset($deficienciaEGrau[1]) && $deficienciaEGrau[1] != "") {
				$dificuldadeDevidoDeficienciaAuditiva = $deficienciaEGrau[1];
			}
		}
				
		$outraModalidadeDeficienciaAuditiva = $_POST['auditivaOutra'];
		$observacoesDeficienciaAuditiva = $_POST['observacaoAuditiva'];
		
		$idDeficienciaFala = $_POST['IdDeficienciaFala'];
		$deficienciaFala = "";
		if(isset($_POST['deficienciaFala'])){
			$deficienciaFala = $_POST['deficienciaFala'];
		}
		$modalidadeDeficienciaFala = $_POST['fala'];
		$outraModalidadeDeficienciaFala = $_POST['falaOutra'];
		$observacoesDeficienciaFala = $_POST['observacaoFala'];
		
		$idDeficienciaFisica = $_POST['IdDeficienciaFisica'];
		$deficienciaFisica = "";
		if(isset($_POST['deficienciaFisica'])){
			$deficienciaFisica = $_POST['deficienciaFisica'];
		}
		$modalidadeDeficienciaFisica = $_POST['fisica'];
		$outraModalidadeDeficienciaFisica = $_POST['fisicaOutra'];
		$observacoesDeficienciaFisica = $_POST['observacaoFisica'];
		
		$idDeficienciaVisual = $_POST['IdDeficienciaVisual'];
		$deficienciaVisual = "";
		if(isset($_POST['deficienciaVisual'])){
			$deficienciaVisual = $_POST['deficienciaVisual'];
		}
		$modalidadeDeficienciaVisual = $_POST['visual'];
		$deficienciaEGrau = explode("-", $modalidadeDeficienciaVisual);
		
		$modalidadeDeficienciaVisual = "";
		$dificuldadeDevidoDeficienciaVisual = "";		
		
		if(isset($deficienciaEGrau)){
			if(isset($deficienciaEGrau[0]) && $deficienciaEGrau[0] != "") {
				$modalidadeDeficienciaVisual = $deficienciaEGrau[0];
			}
			
			if(isset($deficienciaEGrau[1]) && $deficienciaEGrau[1] != "") {
				$dificuldadeDevidoDeficienciaVisual = $deficienciaEGrau[1];
			}
		}		
		$outraModalidadeDeficienciaVisual =  $_POST['visualOutra'];	
		$observacoesDeficienciaVisual = $_POST['observacaoVisual'];	

		$idDeficienciaIntelectual = $_POST['IdDeficienciaIntelectual'];
		$deficienciaIntelectual = "";
		
		if(isset($_POST['deficienciaIntelectual'])){
			$deficienciaIntelectual = $_POST['deficienciaIntelectual'];
		}
		$dificuldadesOcorridasDeficienciaIntelectual = null;
		if(isset($_POST['intelectual'])){
			$dificuldadesOcorridasDeficienciaIntelectual = $_POST['intelectual'];
		}
		$outramodalidadeDeDeficienciaSelecionada = "";
		$outraModalidadeDeficienciaIntelectual = "";
		if(isset($_POST['deficienciaIntelectualOutra'])){
			$outramodalidadeDeDeficienciaSelecionada = $_POST['deficienciaIntelectualOutra'];
			$outraModalidadeDeficienciaIntelectual = $_POST['intelectualOutra'];
		}

		$observacoesDeficienciaIntelectual = $_POST['observacaoIntelectual'];

		if($idDeficienciaAuditiva != null){
		 	$this->definirCampoPreenchido("IdDeficienciaAuditiva", $idDeficienciaAuditiva);
		 }
		
		if($deficienciaAuditiva != null || $deficienciaAuditiva != ""){
			$this->definirCampoPreenchido("deficienciaAuditiva", $deficienciaAuditiva);
		}

		if($modalidadeDeficienciaAuditiva != null || $modalidadeDeficienciaAuditiva != ""){
			$this->definirCampoPreenchido("auditiva", $modalidadeDeficienciaAuditiva);
		}
		
		 if($dificuldadeDevidoDeficienciaAuditiva != null || $dificuldadeDevidoDeficienciaAuditiva != ""){
		 	$this->definirCampoPreenchido("dificuldadeAuditiva", $dificuldadeDevidoDeficienciaAuditiva);
		 }		

		if($outraModalidadeDeficienciaAuditiva != null || $outraModalidadeDeficienciaAuditiva != ""){
			$this->definirCampoPreenchido("auditivaOutra", $outraModalidadeDeficienciaAuditiva);
		}

		if($observacoesDeficienciaAuditiva != null || $observacoesDeficienciaAuditiva != ""){
			$this->definirCampoPreenchido("observacaoAuditiva", $observacoesDeficienciaAuditiva);
		}
		
		if($idDeficienciaFala != null){
		 	$this->definirCampoPreenchido("IdDeficienciaFala", $idDeficienciaFala);
		 }

		if($deficienciaFala != null || $deficienciaFala != ""){
			$this->definirCampoPreenchido("deficienciaFala", $deficienciaFala);
		}

		if($modalidadeDeficienciaFala != null || $modalidadeDeficienciaFala != ""){
			$this->definirCampoPreenchido("fala", $modalidadeDeficienciaFala);
		}

		if($outraModalidadeDeficienciaFala != null || $outraModalidadeDeficienciaFala != ""){
			$this->definirCampoPreenchido("falaOutra", $outraModalidadeDeficienciaFala);
		}

		if($observacoesDeficienciaFala != null || $observacoesDeficienciaFala != ""){
			$this->definirCampoPreenchido("observacaoFala", $observacoesDeficienciaFala);
		}

		if($idDeficienciaFisica != null){
		 	$this->definirCampoPreenchido("IdDeficienciaFisica", $idDeficienciaFisica);
		 }
		
		if($deficienciaFisica != null || $deficienciaFisica != ""){
			$this->definirCampoPreenchido("deficienciaFisica", $deficienciaFisica);
		}

		if($modalidadeDeficienciaFisica != null || $modalidadeDeficienciaFisica != ""){
			$this->definirCampoPreenchido("fisica", $modalidadeDeficienciaFisica);
		}

		if($outraModalidadeDeficienciaFisica != null || $outraModalidadeDeficienciaFisica != ""){
			$this->definirCampoPreenchido("fisicaOutra", $outraModalidadeDeficienciaFisica);
		}

		if($observacoesDeficienciaFisica != null || $observacoesDeficienciaFisica != ""){
			$this->definirCampoPreenchido("observacaoFisica", $observacoesDeficienciaFisica);
		}
		
		if($idDeficienciaVisual != null){
		 	$this->definirCampoPreenchido("IdDeficienciaVisual", $idDeficienciaVisual);
		 }

		if($deficienciaVisual != null || $deficienciaVisual != ""){
			$this->definirCampoPreenchido("deficienciaVisual", $deficienciaVisual);
		}

		if($modalidadeDeficienciaVisual != null || $modalidadeDeficienciaVisual != ""){
			$this->definirCampoPreenchido("visual", $modalidadeDeficienciaVisual);
		}

		if($outraModalidadeDeficienciaVisual != null || $outraModalidadeDeficienciaVisual != ""){
			$this->definirCampoPreenchido("visualOutra", $outraModalidadeDeficienciaVisual);
		}
		
		 if($dificuldadeDevidoDeficienciaVisual != null || $dificuldadeDevidoDeficienciaVisual != ""){
		 	$this->definirCampoPreenchido("dificuldadeVisual", $dificuldadeDevidoDeficienciaVisual);
		 }

		if($observacoesDeficienciaVisual != null || $observacoesDeficienciaVisual != ""){
			$this->definirCampoPreenchido("observacaoVisual", $observacoesDeficienciaVisual);
		}
		
		if($idDeficienciaIntelectual != null){
		 	$this->definirCampoPreenchido("IdDeficienciaIntelectual", $idDeficienciaIntelectual);
		 }

		if($deficienciaIntelectual != null || $deficienciaIntelectual != ""){
			$this->definirCampoPreenchido("deficienciaIntelectual", $deficienciaIntelectual);
		}

		if($dificuldadesOcorridasDeficienciaIntelectual != null || $dificuldadesOcorridasDeficienciaIntelectual != ""){
			$this->definirCampoPreenchido("intelectual", $dificuldadesOcorridasDeficienciaIntelectual);
		}

		if($outramodalidadeDeDeficienciaSelecionada != null || $outramodalidadeDeDeficienciaSelecionada != ""){
			$this->definirCampoPreenchido("deficienciaIntelectualOutra", $outramodalidadeDeDeficienciaSelecionada);
		}

		if($outraModalidadeDeficienciaIntelectual != null || $outraModalidadeDeficienciaIntelectual != ""){
			$this->definirCampoPreenchido("intelectualOutra", $outraModalidadeDeficienciaIntelectual);
		}

		if($observacoesDeficienciaIntelectual != null || $observacoesDeficienciaIntelectual != ""){
			$this->definirCampoPreenchido("observacaoIntelectual", $observacoesDeficienciaIntelectual);
		}

	}

}
?>